The development and execution of tests for business applications is often significantly more difficult than testing of singular software applications. Even the term business application is somewhat of a misnomer, because most business applications are actually a number of different applications, even running on separate computers. Business applications often are composed of separate applications running on separate machines, connected by self-defined data traffic, such as XML.
The separate functions that compose a business application, also known as an Enterprise Resource Planning (ERP) application, may include authentication, authorization, memory management, and transaction support. Individual tests of the various component functions may reveal logic errors, memory leaks, or other defects in the code, but the interactions between components may cause unpredictable errors and unwanted side effects.
Manually developing application-level tests is difficult and time consuming, especially when the number of conditions to satisfy for simulation of a production environment may be difficult to reproduce consistently. Further, when hundreds, or even thousands, of class modules are involved, even unchanged modules may exhibit errors or performance changes when changes are made to connected modules. Ensuring that each class module is fully vetted before being released to production can be as time consuming as authoring the original code.